package com.tom.demo.listener.redis.queue;

import lombok.extern.slf4j.Slf4j;
import org.springframework.data.redis.connection.Message;
import org.springframework.data.redis.connection.MessageListener;
import org.springframework.stereotype.Component;

/**
 * 创建一个订阅监听器对象3
 * 并且将其放入Spring容器
 * Redis发布订阅是一种实时通信机制，消息一旦发布就只投递给当时在线的订阅者
 * 消息不会被存储在任何队列或其他数据结构中等待消费
 * 如果订阅者离线或未能及时处理，这些消息将永久丢失
 * 重新上线的订阅者只能接收到上线后新发布的消息
 */
@Slf4j
@Component
public class RedisSubListenerQueueThree implements MessageListener {
    /**
     * 重写监听器的方法
     * @param message
     * @param bytes
     */
    @Override
    public void onMessage(Message message, byte[] bytes) {
        System.out.println("three监听器收到了消息: " + new String(message.getBody()) + ",监听的主题是:"+new String(bytes));
    }
}
